package com.gable.report.service;


import com.gable.report.model.ChartsAreaQuery;
import com.gable.report.model.ChartsHospitalQuery;
import com.gable.report.model.User;

import java.util.List;
import java.util.Map;

/**
 * Created by lvdouStart on 2017/7/19.
 * 区报表医疗设备基本数据service接口
 */
public interface ChartsForAreaAllocationService {


    /**
     * @Author: 杨青桦
     * @Description:  医院首页概览框
     * @Date: 2017/7/20 13:44
     * @param user
     * @param chartsAreaQuery
     * @return
     * @throws Exception
     */
    Map<String,Object> queryAllAssetsForHospitalIndex(User user, ChartsAreaQuery chartsAreaQuery) throws Exception;


    /**
     * @Author: 杨青桦
     * @Description:  医疗设备首页概览框
     * @Date: 2017/7/20 13:44
     * @param user
     * @param chartsAreaQuery
     * @return
     * @throws Exception
     */
    Map<String,Object> queryAllAssetsForDeviceIndex(User user, ChartsAreaQuery chartsAreaQuery) throws Exception;

    /**
     * @Author: 杨青桦
     * @Description:  年限指数概览框
     * @Date: 2017/7/20 13:44
     * @param user
     * @param chartsAreaQuery
     * @return
     * @throws Exception
     */
    Map<String,Object> queryAllAssetsForDeviceAgeLimit(User user, ChartsAreaQuery chartsAreaQuery) throws Exception;


    /**
     * @Author: 杨青桦
     * @Description:  医院接口
     * @Date: 2017/7/19 16:28
     * @param user
     * @param chartsAreaQuery
     * @return
     * @throws Exception
     */
    Map<String,Object> queryHospitals(User user, ChartsAreaQuery chartsAreaQuery) throws Exception;


    /**
     * @Author: 杨青桦
     * @Description:  设备类型接口
     * @Date: 2017/7/19 16:28
     * @param user
     * @param chartsAreaQuery
     * @return
     * @throws Exception
     */
    Map<String,Object> queryDeviceTypes(User user, ChartsAreaQuery chartsAreaQuery) throws Exception;


    /**
     * @Author: 杨青桦
     * @Description:  设备型号接口
     * @Date: 2017/7/19 16:28
     * @param areaId
     * @param chartsAreaQuery
     * @return
     * @throws Exception
     */
    Map<String,Object> queryDeviceModels(User user, ChartsAreaQuery chartsAreaQuery) throws Exception;


    /** 
     * @Author: 杨青桦
     * @Description:  某个设备类型的所有厂家
     * @Date: 2017/7/20 20:48
     * @param user
     * @param chartsAreaQuery
     * @return
     * @throws Exception
     */
    Map<String,Object> queryDeviceBrands(User user, ChartsAreaQuery chartsAreaQuery) throws Exception;


    /**
     * @Author: 杨青桦
     * @Description:  具体设备信息
     * @Date: 2017/7/20 11:38
     * @param user
     * @param chartsAreaQuery
     * @return
     * @throws Exception
     */
    Map<String,Object> queryDeviceInfoByModelName(User user, ChartsAreaQuery chartsAreaQuery) throws Exception;


    /** 
     * @Author: 杨青桦
     * @Description:  每年趋势
     * @Date: 2017/7/20 19:03
     * @param user
     * @param chartsAreaQuery
     * @return
     * @throws Exception
     */
    List<Map<String,Object>> queryYearTrend(User user, ChartsAreaQuery chartsAreaQuery) throws Exception;


    /**
     * @Author: 杨青桦
     * @Description:  新增或报废设备信息
     * @Date: 2017/12/20 10:44
     * @param user
     * @param chartsAreaQuery
     * @return
     * @throws Exception
     */
    Map<String,Object> queryNewlyOrScrapAssetsInfo(User user, ChartsAreaQuery chartsAreaQuery) throws Exception;
}
